package com.nartosoft.tubuloader;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

import javax.swing.AbstractListModel;


/**
 * Swing list model used by the JList displaying the list of uploads.
 */
@SuppressWarnings("serial")
public class TubuloadModel extends AbstractListModel
{
  private final List<Tubuload> tubuloads = new ArrayList<Tubuload>();

  public Object getElementAt(final int arg0) {
    return tubuloads.get(arg0);
  }

  public int getSize() {
    return tubuloads.size();
  }

  public void addTubuload(Tubuload tubuload) {
    tubuloads.add(tubuload);
    Collections.sort(tubuloads, new Comparator<Tubuload>() {
      public int compare(Tubuload arg0, Tubuload arg1) {
        return arg0.toString().compareTo(arg1.toString());
      }});
  }

  public void removeTubuload(Tubuload tubuload) {
    tubuloads.remove(tubuload);
  }

  public List<Tubuload> getTubuloads() {
    return new ArrayList<Tubuload>(tubuloads);
  }

  public void clear() {
    tubuloads.clear();
  }
}
